package com.yz.group5.med_booking.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yz.group5.med_booking.entity.Appointment;

import java.util.List;

public interface AppointmentService extends IService<Appointment> {

    /**
     * 查询所有预约记录
     * @return 所有预约记录列表
     */
    List<Appointment> listAllAppointments();

    /**
     * 根据用户ID查询预约记录
     * @param userId 用户ID
     * @return 该用户的预约记录列表
     */
    List<Appointment> findByUserId(Integer userId);

    /**
     * 创建新预约
     * @param appointment 预约信息对象
     * @return 是否创建成功
     */
    boolean createAppointment(Appointment appointment);

    /**
     * 取消预约
     * @param appointmentId 预约记录ID
     * @return 是否取消成功
     */
    boolean cancelAppointment(Integer appointmentId);

    /**
     * 根据科室ID查询预约记录
     * @param departmentId 科室ID
     * @return 该科室的预约记录列表
     */
    List<Appointment> findByDepartmentId(Integer departmentId);

    /**
     * 根据医生ID查询预约记录
     * @param doctorId 医生ID
     * @return 该医生的预约记录列表
     */
    List<Appointment> findByDoctorId(Integer doctorId);
}
